package com.molihub.mapper;

import com.molihub.entity.ArticleTag;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

/**
 * @InterfaceName: ArticleTagMapper
 * @Description: 与文章标签相关的数据库操作
 * @author: xw
 * @date 2020/1/26 20:15
 * @Version: 1.0
 **/
@Mapper
public interface ArticleTagMapper {

    /**
     * @Description 添加文章标签
     * @Author xw
     * @Date 20:16 2020/1/26
     * @Param [articleTag]
     * @return java.lang.Integer 返回影响的数据表行数，自增主键封装到articleTag的id属性
     **/
    public Integer addArticleTag(ArticleTag articleTag);

    /**
     * @Description 删除文章标签，如果文章ID不为空那么根据文章ID删除，否则根据用户ID和标签名删除
     * @Author xw
     * @Date 20:18 2020/1/26
     * @Param [articleTag]
     * @return java.lang.Integer 返回影响的数据表行数
     **/
    public Integer deleteArticleTag(ArticleTag articleTag);

    /**
     * @Description 获取一个用户的所有文章标签
     * @Author xw
     * @Date 20:20 2020/1/26
     * @Param [userId]
     * @return java.util.List<com.molihub.entity.ArticleTag>
     **/
    public List<ArticleTag> getArticleTagsByUserId(Integer userId);

    /**
     * @Description 根据文章标签id获得文章标签对象
     * @Author xw
     * @Date 20:21 2020/1/26
     * @Param [id]
     * @return com.molihub.entity.ArticleTag
     **/
    public ArticleTag getArticleTagById(Integer id);

    /**
     * @Description 根据文章标签id修改标签名称
     * @Author xw
     * @Date 20:22 2020/1/26
     * @Param [articleTag]
     * @return java.lang.Integer 返回影响的数据表行数
     **/
    public Integer updateArticleTag(ArticleTag articleTag);
    
    /**
     * @Description 获得用户标签数量
     * @Author xw
     * @Date 20:23 2020/2/2
     * @Param [userId]
     * @return java.lang.Integer
     **/
    public Integer getTagCountByUserId(Integer userId);
}
